import { initGlobalState, registerMicroApps, start } from 'qiankun'

//注册子应用
registerMicroApps([
  // 当匹配到 activeRule 的时候，请求获取 entry 资源，渲染到 container 中。
  {
    name: 'sub-vue2', //子应用名称
    entry: '//localhost:7001', //子应用入口（html入口）
    container: '#subapp-container', //子应用挂载容器
    activeRule: '/subapp/sub-vue2' //子应用路由匹配规则
  },
  {
    name: 'sub-vue3',
    entry: '//localhost:7002',
    container: '#subapp-container',
    activeRule: '/sub-vue3'
  },
  // {
  //   name: 'sub-react-hash',
  //   entry: '//localhost:7003',
  //   container: '#subapp-container',
  //   activeRule: '/sub-react-hash'
  // },
  // {
  //   name: 'sub-react-history',
  //   entry: '//localhost:7004',
  //   container: '#subapp-container',
  //   activeRule: '/sub-react-history'
  // }
])

start({
  sandbox: {
    // 默认情况下沙箱可以确保单实例场景子应用之间的样式隔离，
    // 但是无法确保主应用跟子应用、或者多实例场景的子应用样式隔离。
    // 当配置为 { strictStyleIsolation: true } 时表示开启严格的样式隔离模式。
    // 通过 scoped css 来实现的
    experimentalStyleIsolation: true,

    // 严格的样式隔离，这样可以强制使用 Shadow DOM 来实现完全的样式隔离。
    // experimentalStyleIsolation在vite下样式还是会被污染
    // strictStyleIsolation: true
  }
})
